package com.cskaoyan.javase.method._2exercise;

import java.util.IllegalFormatFlagsException;
import java.util.Scanner;

/**
 * 求两个数的最大值。
 * 键盘录入两个值，求最大值。
 * 定义一个方法用于判断一个正整数的奇偶性，要求：
 * 奇数方法返回false
 * 偶数方法返回true
 *
 *
 * 定义一个计算器（Calculator）它的功能有：
 * 加，减，乘，除
 * 求平方
 * 求a的n次方
 * ...
 * 定义一个方法，求圆的面积：
 *
 * 方法参数:半径 (radius)
 * 圆周率:3.14（获取用Math.PI获取）
 * @since 17:18
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        System.out.println(getMaxValue(10, 20));
        System.out.println(getMaxValue(111.111, 222.22));
        System.out.println("-------------------------");
        // Scanner sc = new Scanner(System.in);
        // System.out.println(getMaxValueByScanner(sc));
        System.out.println("-------------------------");
        System.out.println(judgeEvenNum(333));
        System.out.println("----------------------");
        System.out.println(Math.pow(2, 10));
        System.out.println(power(2, 10));
    }

    //  求两个double类型数的最大值
    public static double getMaxValue(double d1, double d2) {
        return (d1 > d2) ? d1 : d2;
    }

    // 键盘录入两个int值，求最大值 要求方法传入一个Scanner对象
    public static int getMaxValueByScanner(Scanner sc) {
        System.out.println("请键盘录入两个int类型的数据:");
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        return (num1 > num2) ? num1 : num2;
    }

    // 定义一个方法用于判断一个正整数的奇偶性，要求：
    // 奇数方法返回false
    // 偶数方法返回true
    public static boolean judgeEvenNum(int num) {
        if (num % 2 == 0) {
            // 偶数
            return true;
        }
        // else {
        //     return false;
        // }
        // 代码运行到这里,说明这个数肯定不是偶数,那就是奇数
        return false;
    }

    // 求a的n次方
    public static long power(int a, int n) {
        // 方案一: 幂运算在Java中已经有实现了,Math.pow
        // return (long) Math.pow(a, n);

        // 方案二: 自己实现,用for/while循环
        // a的n次方,是n个a相乘,所以要循环n次,表示乘了n次
        // 需要一个初始值,进行累乘
        long result = 1;
        for (int i = 0; i < n; i++){
            result *= a;
        }
        return result;
    }
}
